/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package Controller;

import Controller.Facade.FacadeIMPL;
import Controller.Facade.IceDecorator;
import Model.ItemPedidoEmpresa;
import Model.PedidoEmpresaVO;
import java.util.ArrayList;
import java.util.List;

/**
 *
 * @author Betinha
 */
public class ListaItems {

   private List<ItemPedidoEmpresa> items = new ArrayList();

   public void iniciaItems(int size) {
      items.clear();
      for (int i = 0; i < size; i++) {
         items.add(new ItemPedidoEmpresa());
      }
      System.out.println(items.size());
   }

   public List<ItemPedidoEmpresa> addItems(ItemPedidoEmpresaBO item) {
      for (int i = 0; i < items.size(); i++) {
         //se a classificação e a variedade forem iguais muda somente a quantidade e quantidade auxiliar
         if ((items.get(i).getProduto().getClassificacao().getNome().
                 equals(item.getItemPedidoEmpresa().getProduto().getClassificacao().getNome())) &&
                 (items.get(i).getProduto().getVariedade().getNome().
                 equals(item.getItemPedidoEmpresa().getProduto().getVariedade().getNome()))) {

            items.get(i).setQuantidade(item.getItemPedidoEmpresa().getQuantidade());
            items.get(i).setQuantidadeAuxiliar(item.getItemPedidoEmpresa().getQuantidade());
            items.get(i).setValorUnitario(item.getItemPedidoEmpresa().getValorUnitario());
            items.get(i).setProduto(item.getItemPedidoEmpresa().getProduto());
            i = items.size();

         } else if (items.get(i).getProduto().getClassificacao().getNome().equals("") &&
                 (item.getItemPedidoEmpresa().getQuantidade() != 0)) {
            items.get(i).setQuantidade(item.getItemPedidoEmpresa().getQuantidade());
            items.get(i).setQuantidadeAuxiliar(item.getItemPedidoEmpresa().getQuantidade());
            items.get(i).setValorUnitario(item.getItemPedidoEmpresa().getValorUnitario());
            items.get(i).setProduto(item.getItemPedidoEmpresa().getProduto());
            i = items.size();

         } else {
         }
      }
      return items;
   }

   public List<ItemPedidoEmpresa> getItems() {
      return items;
   }

   public void salvar() throws Exception {
      try {
         boolean cadastrado = false;
         List<PedidoEmpresaVO> pedidos = new IceDecorator(PedidoEmpresaBO.class).consultar();
         /*for(int i=0; i<pedidos.size(); i++){
         if(pedidos.get(i).getDataEntrega()==items.get(0).getChaveComposta().getPedidoEmpresa().getDataEntrega() &&
         pedidos.get(i).getDataEntrega()==items.get(0).getChaveComposta().getPedidoEmpresa().getDataEntrega()

         }*/
         new FacadeIMPL(PedidoEmpresaBO.class).salvar(items.get(0).getPedidoEmpresa());
      } catch (NullPointerException e) {
         try {
            new FacadeIMPL(PedidoEmpresaBO.class).salvar(items.get(0).getPedidoEmpresa());

         } catch (Exception ex) {
            throw new Exception(e);
         }
      }
      for (int i = 0; i < items.size(); i++) {
         new FacadeIMPL(ItemPedidoEmpresaBO.class).salvar(items.get(i));
      }
   }

   void deletar(int row) throws Exception {
      try {
         new FacadeIMPL(ItemPedidoEmpresaBO.class).excluir(items.get(row));
      } catch (Exception e) {
      }
      items.remove(row);
      items.add(new ItemPedidoEmpresa());
   }
}
